﻿
using System;
using MyFramework.Common.Enums;
namespace MyFramework.Common.Interfaces
{
    /// <summary>
    /// Interface view
    /// </summary>
    public interface IView : IEntity, IDisposable
    {
        /// <summary>
        /// Gets or sets the data context.
        /// </summary>
        /// <value>
        /// The data context.
        /// </value>
        IViewModel DataContext { get; }

        /// <summary>
        /// Initializes the specified viewmodel.
        /// </summary>
        /// <param name="viewmodel">The viewmodel.</param>
        void Initialize(IViewModel viewmodel);

        /// <summary>
        /// Gets or sets the state.
        /// </summary>
        /// <value>
        /// The state.
        /// </value>
        ViewState State { get; set; }
    }
}
